package project02.view;

import project02.domain.CurrentUser;
import project02.domain.User;
import project02.service.JobService;
import sun.security.util.AuthResources_it;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Random;
import java.util.Scanner;

public class JobView {
    Date workStart=new Date();
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    private JobService jSvc = new JobService();
    //private ArrayList<r[]> allTeam = .TeamSvc.getAllTeam();
    //private ArrayList<String> teamNames = new ArrayList<>(); //保存所有名称
    private ArrayList<Integer> assignedTeam = new ArrayList<>(); //保存已分配工作的人员的索引
    private Scanner sc = new Scanner(System.in);
    private Random r = new Random();
    public void projectManageMainMenu() throws IOException, ClassNotFoundException, ParseException, InterruptedException {
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("🔣        ~兼职工作管理主菜单~        🔣");
            System.out.println("🐕1.     <发布兼职信息(仅管理员)>           *");
            System.out.println("🐱2.     <查看兼职信息>           *");
            System.out.println("🐱3.     <申请兼职>           *");
            System.out.println("🐂4.     <兼职工作管理（仅管理员）>           *");
            System.out.println("🐂5.     <结束工作>           *");
            System.out.println("🐇6.     <退出当前菜单>          *");
            System.out.print("⬇请选择：");
            switch (TSUtility.readMenuSelectionPro()) {

                case '1':
                    String str="tea";
                    if (CurrentUser.currentUser.getUid().startsWith(str)){

                    System.out.println("请输入兼职信息。");
                    //录入信息包括：营业执照编号、公司名字、岗位名称、兼职类型、兼职等级、工作内容、需求人数、工作时间等
                    System.out.println("请输入营业执照编号");
                    Integer jid = null;
                    while (true){
                        try {
                            String temp = sc.next();
                            jid = Integer.valueOf(temp);
                            break;
                        }catch (Exception e){
                            System.out.println("营业执照编号输入有误，请重新输入");
                        }

                    }

                    System.out.println("请输入所属公司名称：");
                    String companyName=sc.next();
                    System.out.println("请输入工作名称");
                    String jobName=sc.next();
                    System.out.println("请编辑工作类型：");
                    String jobTypeName=sc.next();
                    System.out.println("请编辑工作所需信用等级(1-5级)：");
                    Integer jobLevel=sc.nextInt();
                   // Integer jobLevel= Integer.valueOf(TSUtility.inputCheck1(1,1,null,"信息录入出错！"));
                      while (jobLevel!=1&&jobLevel!=2&&jobLevel!=3&&jobLevel!=4&&jobLevel!=5){
                          System.out.println("信息输入错误，请重新输入！");
                      }
                    System.out.println("请编辑工作内容：");
                    String jobContent=sc.next();
                    System.out.println("请输入工作所需人数：");
                    Integer jobDemand=sc.nextInt();
                    System.out.println("请编辑工作所需天数：");
                    Integer jobTime=sc.nextInt();
                    System.out.println("请输入兼职工作的薪水:");
                    Integer salary=sc.nextInt();
                    System.out.println("请输入兼职工作的状态，【1（开发中）】，【0(未开发)】，【-1(已完成)】");
                    Integer status=sc.nextInt();

                    JobService.getJobInformation(jid,companyName,jobName,jobTypeName,jobLevel,jobContent,jobDemand,
                            jobTime, salary,status);}


                    else {
                        System.out.println("您没有该权限！");
                    }
                    break;
                case '2':
                    System.out.println("请选择查看兼职信息分类：【1】all，【2】yourself：");
                    Integer type=sc.nextInt();
                    switch (type){
                        case 1:
                            JobService.checkWorkAll();
                            break;
                        case 2:
                            JobService.checkWork();
                            break;

                    }

                    break;
                case '3':
                    System.out.println("请输入查询条件（兼职信用等级[1-5]）：");
                    Integer level= Integer.valueOf(TSUtility.inputCheck(1,1,null,null));
                    JobService.applyJob(level);
                    if (level<=5){
                    System.out.println("请输入您选择的工作的营业执照编号：");
                    Integer id= Integer.valueOf(TSUtility.inputCheck(1,20,null,null));
                    if (JobService.check(id)){
                    JobService.applyJobForYourself(id,df,workStart);}


                    }
                    else {
                        System.out.println("等级输入错误！请重新输入！");
                        continue;
                    }

                    break;
                case '4':
                    String str1="tea";
                    if (CurrentUser.currentUser.getUid().startsWith(str1)){
                    System.out.println("所有的兼职信息如下：");
                    JobService.checkWorkAll();
                    System.out.println("请选择要修改兼职等级的工作，请输入该工作的营业执照编号：");
                    Integer inputUid=sc.nextInt();
                    System.out.println("请输入修改得兼职等级：");
                    Integer inputLevel=sc.nextInt();
                    JobService.modifyJobContent(inputUid,inputLevel);}
                    else {
                        System.out.println("您没有该权限。");
                    }
                    break;
                case '5':
                    JobService.checkWork();
                    System.out.println("请输入结束工作的营业执照编号：");
                    Integer id1=sc.nextInt();
                   JobService.endJob(id1,workStart);
                    break;
                case '6':
                    System.out.print("确认是否退出(Y/N)：");
                    if (TSUtility.readConfirmSelection() == 'Y') {
                        return;
                    }
                    break;
            }

        }}}
